import { ADD_CART, } from '../constant';

// EDIT_CART
//初始化
const initCartList = [];

// 纯函数
const cart = (state = initCartList, action) => {
    const { type, data } = action;
    // console.log(data);
    switch (type) {
        case ADD_CART://添加逻辑
            //判断 添加进来的数据的id号，在 state的cart中是否存在，不存在，新增；存在：num+1
            const { id } = data;
            // findIndex 在数组中查找跟该条记录相同的id的数据下标，找到返回下标 没找到返回-1
            const index = state.findIndex(value => value.id === id)
            if (index === -1) {//新增
                /* 注意以下代码为模拟内容，真实项目是数据库生成的 */
                const arr = ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', 'a', 'b', 'c', 'd', 'e', 'f'];
                var result = "";//接收生成好的随机数
                for (var i = 0; i < 24; i++) {
                    result += arr[Math.floor(Math.random() * 16)];
                }
                data.cartId = result;
                /* end */
                return [...state, data];
            } else {//修改
                state[index].num++;
                return [...state];
            }
        default:
            return state;
    }
}

export default cart;